PowerBI自动切换中英文单位 |
您所在的位置:网站首页 › powerbi 书签自动切换 › PowerBI自动切换中英文单位 |
23 除了干饭,皆无向往;被窝之外,皆是他乡 通常我们在做报表的时候,会给报表设置一个统一的单位,比如百万,这样整个报表的数据看起来就比较规整,但是这样也会出现另一个问题,比如某个值是100,那这样格式化后显示就是0,但事实上它并不是0,只是值相对比较小而已。那有没有一个方法可以根据数值的大小自动来显示单位呢? 答案是肯定的,也正是很多人想到的那样,用计算组。 先来回顾下,在计算组出来之前我们是怎么来切换报表的单位的。首先会新建一张单位表 Unit = SELECTCOLUMNS({ ( "None" , 1 ) , ( "K" , 1000 ) , ( "W" , 10000 ) , ( "M" , 1000000)} , "Name" , [Value1] , "Value" , [Value2] )新建度量如下: Sales Amount := SUMX ( Sales, Sales[Quantity] * Sales[Unit Price] )Sales Amount Unit = [Sales Amount] / SELECTEDVALUE( 'Unit'[Value], 1 )图表显示效果如下: 可以看到数据已经显示了根据选择的单位进行了格式化显示,但是这样会存在一个问题,比如我们导出数据,那么导出的数据也是除以10000后的,但是文件中并没有标注该值的单位,这有可能引起不必要的问题。 接下来就是今天的重点了,使用计算组来对数值的显示进行格式化,打开Tabular Editor,右键新建一个计算组 效果如下: 导出数据效果如下,数据还是未格式化前的样子。 再来看上面计算组中的格式表达的写法,其实原理也很简单,用到了自定义格式字符,具体可见官方文档 https://docs.microsoft.com/zh-cn/dax/format-function-dax(,)千分位符 (.)小数点占位符 (#)占位符,有值时才显示 (0)占位符,有值时显示该值,无值时显示为0 VAR V = SELECTEDMEASURE ()VAR F =IF( SWITCH ( TRUE (), V >= 1E9, "##0,,,.00 G", V >= 1E6, "##0,,.00 M", V >= 1E3, "##0,.00 K", "0.00" ))RETURN F上面代码无论数值是否带有小数,都会保留两位小数,若要自适应当数值是整数时显示为整数,有小数位时才保留小数,可修改为如下: VAR V = SELECTEDMEASURE ()VAR F = SWITCH ( TRUE (), V >= 1E9, "##0,,,.## G", V >= 1E6, "##0,,.## M", V >= 1E3, "##0,.## K", "0.##" )RETURN F这时,我们可以做进一步的变形,从而做到单位进行中英文的的切换。 这时,也许有人会问,如果有是百分比的度量呢,接下来进一步改进格式表达式 VAR V = SELECTEDMEASURE ()VAR F =IF( SEARCH( "%", SELECTEDMEASURENAME(), 1, 0) = 0, SWITCH ( TRUE (), V >= 1E9, "##0,,,.00 G", V >= 1E6, "##0,,.00 M", V >= 1E3, "##0,.00 K", "0.00" ), "0.00%")RETURN F本篇文章来源于微信公众号: PowerBI木小桼 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |